<?php
namespace Ana\AgendaBundle\Controller;

use Ana\AgendaBundle\Entity\Turno;

use Ana\AgendaBundle\Lib\validadores\TurnoNuevoValidador;

use Symfony\Component\HttpFoundation\Response;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;


class TurnoController extends BaseController{
    
    /**
    *
    * @Route("/turnos",name="turnos",defaults={"_format": "json"})
    * @Method("GET")
    * LISTADO
    */
    public function turnosAction(){
        $repo = $this->getRepo('Ana\AgendaBundle\Entity\Turno');
        $turnos = $repo->findAll();
        return $this->successAjaxResponse(array('turnos'=>$turnos));
    }
    
    /**
    * @Route("/turno",name="nuevo_turno",defaults={"_format": "html"})
    * @Method("GET")
    *
    */
    public function nuevoTurnoAction(){
        return $this->render('AnaAgendaBundle:Turno:turno_nuevo.html.php');
    }
    
    /**
     * @Route("/turno",name="crear_turno",defaults={"_format": "json"})
     * @Method("POST")
     *
     */
    public function crearTurnoAction(Request $request){
        $data = json_decode($request->getContent());
        $errores = TurnoNuevoValidador::validar($data);

        if(!empty($errores)){
            return $this->failAjaxResponse(array(AjaxAlerta::dangerAlert('El turno no fue creado revise el formulario.')),array('turno'=>$errores));
        }

        $turno = new Turno();//Creo
        $turno->setEmpieza($data->empieza);
        $turno->setTermina($data->termina);
        $turno->setPaciente($data->paciente);
        $turno->setJornada($data->jornada);
    
        $em = $this->getDoctrine()->getManager();//persisto
        $em->persist($turno);
        $em->flush();
    
        return $this->successAjaxResponse(null,array(AjaxAlerta::successAlert('Turno Creado')));//Exitoso
    }
}
